USE [SAPF]
GO
/****** Object:  StoredProcedure [dbo].[ObtenerSolicitudesPersona]    Script Date: 11/28/2010 22:38:38 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:		Beatriz Gonzalez
-- Create date: 20-11-10
-- Description:	Obtiene la lista de solicitudes presentadas por una persona
-- =============================================
CREATE PROCEDURE [dbo].[ObtenerSolicitudesPersona]
	-- Add the parameters for the stored procedure here
	
	@idPersona int
	
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;
	
	DECLARE @idEstado int
		SELECT @idEstado=IdEstado
		FROM EstadoProyecto 
		WHERE Estado = 'Solicitud'
		
    -- Insert statements for procedure here
	If (
		(SELECT TP.TipoPersona 
		 FROM Persona P, TipoPersona TP 
		 WHERE P.IdTipoPersona = TP.IdTipoPersona
		 AND P.IdPersona = @idPersona) = 'Jefe AMD')
	BEGIN
		
		SELECT DISTINCT Pr.Nombre, Pr.FechaInicio, Pr.FechaFin, P.Nombre
		FROM Proyecto Pr, Persona P, Organizacion O, RProyOrganizacion RP
		WHERE Pr.IdRProy = P.IdPersona
		AND P.IdPersona = RP.IdRProy
		AND RP.IdOrganizacion = O.IdOrganizacion
		AND Pr.IdEstado = @idEstado
		ORDER BY 1
	
	END
	ELSE
	BEGIN
		
		If (
		(SELECT TP.TipoPersona 
		 FROM Persona P, TipoPersona TP 
		 WHERE P.IdTipoPersona = TP.IdTipoPersona
		 AND P.IdPersona = @idPersona) = 'OP')
		BEGIN
	
		SELECT DISTINCT Pr.Nombre, Pr.FechaInicio, Pr.FechaFin, P.Nombre
		FROM Proyecto Pr, Persona P, Organizacion O, RProyOrganizacion RP, PersonaProyecto PP
		WHERE Pr.IdRProy = P.IdPersona
		AND P.IdPersona = RP.IdRProy
		AND RP.IdOrganizacion = O.IdOrganizacion
		AND Pr.IdEstado = @idEstado
		AND P.IdPersona = PP.IdProyecto
		AND Pr.IdProyecto = PP.IdProyecto
		AND PP.IdPersona = @idPersona
		ORDER BY 1
		
		END
		ELSE
		BEGIN
		
			SELECT DISTINCT Pr.Nombre, Pr.FechaInicio, Pr.FechaFin, P.Nombre
			FROM Proyecto Pr, Persona P, Organizacion O, RProyOrganizacion RP
			WHERE Pr.IdRProy = P.IdPersona
			AND P.IdPersona = RP.IdRProy
			AND Pr.IdEstado = @idEstado
			AND Pr.IdRProy = @idPersona 
			ORDER BY 1
		
		END
	END	
	
END
